USE master;
GO

-- get the logical name of the data and log files associated with the database
SELECT
	name,
	physical_name 
FROM sys.master_files 
WHERE database_id = DB_ID('<database_name>');

-- take the database offline
ALTER DATABASE <database_name> SET OFFLINE;
GO

-- move one file at a time to the new location
ALTER DATABASE <database_name> 
	MODIFY FILE ( NAME = <logical_file_name>,
	FILENAME = <'os_file_name'>);
GO

-- repeat the previous step to move other data and log files

-- put the database online
ALTER DATABASE <database_name> SET ONLINE;
GO

-- you can verify the change or changes
USE master;

SELECT
	name,
	physical_name 
FROM sys.master_files 
WHERE database_id = DB_ID('<database_name>');

/*
You can also move full-text catalogs by their logical name.
But note that when you specify the new catalog location, you specify only new_path rather than new_path/file_name.
To move a full-text catalog file to a new location, follow these steps: 
*/

-- take the database you want to work with offline
ALTER DATABASE <database_name> SET OFFLINE;
GO 
 
-- move one file at a time to the new location
ALTER DATABASE <database_name>
	MODIFY FILE (NAME = <logical_file_name>, FILENAME = '<new_path>');
GO

-- repeat the previous step to move other full-text catalog files as necessary

-- put the database online
ALTER DATABASE <database_name> SET ONLINE;
GO